package com.nineyang.controller;

import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/*
 在springboot3中，对web请求的路径匹配提供了两种规则：
    1.AntPathMatcher（Ant风格）【旧风格】
    2.PathPatternParser（从Spring5.3中引入的。在SpringBoot2.4中引入的。）【新风格，效率高，也是默认风格】
 默认PathPatternParser风格，如果需要使用Ant风格需要在配置文件配置如下配置：
 spring.mvc.pathmatch.matching-strategy=ant_path_matcher
 */
@RestController
public class IndexController {

    /*
     关于Ant匹配规则：
        * ：匹配任意长度的任意字符序列（不包括路径分隔符）。
        ** ：匹配任意数量的目录层级。
        ？：匹配任意单个字符。
        [] ：匹配指定范围内的单个字符。
        {} ：路径变量，用于提取的一部分作为参数。
     关于PathPatternParser风格规则：
        PathPatternParser风格规则兼容Ant规则，只有一个地方不支持，在Ant风格中，**可以出现在任意位置，在PathPatternParser风格中**只能出现在路径结尾。
    */
    @GetMapping("/{path:[a-z]+}/a?/**/*.do")
    public String path(HttpServletRequest httpServletRequest, @PathVariable String path){
        return httpServletRequest.getRequestURI() + "," + path;
    }

}
